#pragma once

#include <osg/Group>
#include <osg/Geode>
#include <osgDB/ReadFile>
using namespace osg;

#include <string>
#include <iostream>
using namespace std;

struct NodeHead;
struct NodeRef;

struct NodeHead
{
	int			id;
	string		name;
	int			indexInGeodeList;
	int			colorIndex;
	NodeRef*	nodeRef;

	NodeHead()
	{
		id = -1;
		indexInGeodeList = 0;
		colorIndex = 0;
		nodeRef = NULL;
	}
};

struct NodeRef
{
	NodeHead*	node;
	NodeRef*	next;

	NodeRef(NodeHead* aNode)
	{
		node = aNode;
		next = NULL;
	}
};



extern int ACTIVATED_NODE_COUNT;
extern int INACTIVATED_NODE_COUNT;
extern int COLOR_COUNT;

extern NodeHead*	g_adjacencyList;
extern wstring*		g_colors;


string wstringToString( const wstring& str );
wstring stringToWString( const string& str );
